ReactNative expo-location ー 現在地取得ライブラリ ー
本名:expo-location
ポイント
iOs, Android関係なく、アプリから端末の現在地情報を取得するにはユーザーの許可が必要
ユーザーのアプリ初回起動時に、許可設定の確認をするのが通常のやり方
だれもが1回は経験したことがあると思われる。位置情報を「常に許可する」「アプリの使用中だけ許可する」的なあれ。
Level:「アプリの使用中だけ許可する」
アプリを開いてる時だけ、端末の位置情報取得を許す
Level:「常に許可する」
別のアプリを開いていても、端末の位置情報取得を許可する
expo-locationを使う場合、「初回時の許可求め」は自動でやってくれる(たぶん)
iOSの「現在地情報取得の許可文面」を変更したい場合は、info.plistを変更するといい。
ここら辺は、他の許可求める系のやつと一緒
iOSでバックグラウンドロケーションを利用したい場合、info.plistをいじる必要がある
expo-locationでは、フォア状態(app開いてる)とバック状態(別appを開いてる)を意識する
「これはバック状態時に関連する関数やな」「これはどっちにも関連する関数やな」という見方が大事
ex:getForegroundPermissionsAsync(), getBackgroundPermissionsAsync()
それぞれに応じた状況時に、現在地情報を取得していいかの許可を確認してる。
grantedという文字が帰ったら、許可されてることを意味する。
ユーザーが初回に出した許可が「常に」なら、フォアもバックもどちらもgrantedのはず。
ユーザーが初回に出した許可が「アプリ使用中」なら、フォアのみgrantedのはず。
requestBackgroundPermissionsAsync()を実行すると以下のようなポップが出てくる
https://scrapbox.io/files/61fd401fd5c1b1001da91106.png
watchPostionAsyncで現在地情報をサブスクリプションすることが可能
現在地が指定距離動くたびに、情報を取得できるすごい機能
基本的にはdistanceIntervalを使えばいい。timeIntervalはAndroid用。